/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package E_explicito_Dinamica;

/**
 *
 * @author rafaelob
 */
public class TabelaHash {

    private int tamanhoTabela;
    private Celula celulas[];

    public TabelaHash(int tamanho) {
        celulas = new Celula[tamanho];
        this.tamanhoTabela = tamanho;
        for(int i = 0; i < tamanho; i++){ //Preenche a tabela com as células de acordo com o tamanho da tabela hash
            celulas[i] = new Celula(i);
        }
    }


    private int getIndex(int chave) { //calcula a função hash associada a essa chave
        return chave % tamanhoTabela;
    }

    public Celula getCelula (int posicao){
        return celulas[posicao];
    }


    public int insertion(int chave) {

        Record record = new Record(chave);
        int index = getIndex(chave);
        return celulas[index].insertRecord(record);

    }

    public int search(int chave) {
        int index = getIndex(chave);
        return celulas[index].searchRecord(chave);
    }
}
